package com.example.questionnaires.service;

import com.baomidou.mybatisplus.extension.service.IService;
import com.example.questionnaires.common.Result;
import com.example.questionnaires.common.PageResult;
import com.example.questionnaires.entity.Questionnaire;
import com.example.questionnaires.entity.QuestionnaireRecord;
import com.example.questionnaires.vo.QuestionnaireDetailVO;
import com.example.questionnaires.vo.StatisticsVO;
import com.example.questionnaires.vo.QuestionnaireStatisticsVO;
import com.example.questionnaires.vo.QuestionnaireSubmissionVO;
import com.example.questionnaires.vo.QuestionnaireVO;
import java.util.List;
import java.util.Map;

public interface QuestionnaireService extends IService<Questionnaire> {
    List<Questionnaire> getLatest();
    QuestionnaireDetailVO getDetail(Long id);
    void saveDetail(QuestionnaireDetailVO questionnaireDetail);
    void submitAnswer(Long id, String answers);
    StatisticsVO getStatistics();
    QuestionnaireStatisticsVO getQuestionnaireStatistics(Long id);
    Result<PageResult<Questionnaire>> list(Integer page, Integer size);
    Result<QuestionnaireVO> getQuestionnaire(Long id);
    Result<Void> add(Questionnaire questionnaire);
    Result<Void> update(Questionnaire questionnaire);
    Result<Void> delete(Long id);
    Result<Void> publish(Long id);
    Result<Void> end(Long id);
    List<QuestionnaireSubmissionVO> getMySubmissions();
    Map<String, Object> getQuestionnaireWithAnswers(Long id);
    void submitQuestionnaire(Long id, Map<String, Object> answers);
    QuestionnaireRecord getSubmissionByQuestionnaireId(Long questionnaireId, Long userId);
    QuestionnaireVO getQuestionnaireDetail(Long id);
} 